// 这是一个基础的Flutter组件测试
//
// 要在测试中与组件进行交互，请使用flutter_test包中的WidgetTester工具。
// 例如，您可以发送点击和滚动手势。您还可以使用WidgetTester在组件树中查找子组件、
// 读取文本，并验证组件属性值的正确性。

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

import 'package:qxxzs_flutter/main.dart';

void main() {
  testWidgets('计数器功能测试', (WidgetTester tester) async {
    // 构建应用并触发一帧
    await tester.pumpWidget(const QxxzsApp());

    // 验证计数器从0开始
    expect(find.text('0'), findsOneWidget);
    expect(find.text('1'), findsNothing);

    // 点击'+'图标并触发一帧
    await tester.tap(find.byIcon(Icons.add));
    await tester.pump();

    // 验证计数器已增加
    expect(find.text('0'), findsNothing);
    expect(find.text('1'), findsOneWidget);
  });

  testWidgets('重置按钮功能测试', (WidgetTester tester) async {
    // 构建应用
    await tester.pumpWidget(const QxxzsApp());

    // 点击几次增加按钮
    await tester.tap(find.byIcon(Icons.add));
    await tester.pump();
    await tester.tap(find.byIcon(Icons.add));
    await tester.pump();

    // 验证计数器为2
    expect(find.text('2'), findsOneWidget);

    // 点击重置按钮
    await tester.tap(find.text('重置计数器'));
    await tester.pump();

    // 验证计数器重置为0
    expect(find.text('0'), findsOneWidget);
  });
}
